package com.exam.demo.controller.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.exam.demo.entity.Question;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;

/**
 * paper
 * @author 
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PaperDTO implements Serializable {
    /**
     * 试卷ID
     */
    private Integer paperId;

    /**
     * 试卷名称
     */
    private String paperName;

    /**
     * 试卷总分
     */
    private Double score;

    /**
     * 课程id
     */
    private String courseId;

    /**
     * 课程名称
     */
    @TableField(exist = false)
    private String courseName;

    /**
     * 组卷方式（1.固定组卷，2.随机组卷）
     */
    private Integer makePaperMethod;

    /**
     * 题目数量
     */
    private Integer questionCount;

    /**
     * 单选题数目
     */
    private Integer radioQuestionCount;

    /**
     * 判断题数目
     */
    private Integer judgeQuestionCount;

    /**
     * 多选题数目
     */
    private Integer checkboxQuestionCount;

    /**
     * 填空题数目
     */
    private Integer fillQuestionCount;

    /**
     * 客观题数目
     */
    private Integer objectiveQuestionCount;

    /**
     * 考试时长
     */
    private Integer suggestTime;

    /**
     * 时段试卷 开始时间
     */
    private Date limitStartTime;

    /**
     * 时段试卷 结束时间
     */
    private Date limitEndTime;

    /**
     * 考试地点
     */
    private String address;

    /**
     * 出题人id
     */
    private String teacherId;

    /**
     * 出题老师名字
     */
    @TableField(exist = false)
    private String teacherName;

    /**
     * 随机组卷单选题分数
     */
    private Integer radioScore;

    /**
     * 随机组卷多选题分数
     */
    private Integer checkboxScore;

    /**
     * 随机组卷判断题分数
     */
    private Integer judgeScore;

    /**
     * 试卷总分
     */
    private Double paperScore;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 考试类型( 1.固定考试 4.时段考试，6.任务考试)
     */
    private Integer paperType;

    /**
     * 考试类型
     */
    private Integer examType;

    /**
     * 试卷难度
     */
    private Integer difficult;

    /**
     * 试题集合questions字段
     */
    @TableField(exist = false)
    private ArrayList<Question> questionList;
    
    /**
     * 试卷类型( 1.固定试卷 4.时段试卷 6.上机练习 )
     */
    private String useStatus;

    /**
     * 学号
     */
    private String studentId;


    /**
     * 姓名
     */
    @TableField(exist = false)
    private String studentName;

    private static final long serialVersionUID = 1L;
}